package com.yeung.Greedy;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 　最优装载问题，给出n个物体，第i个物体重量为wi。选择尽量多的物体，使得总重量不超过C。
 * <p>
 * 　　经过前面的学习很容易想到贪心策略，那就是每次选重量最轻的物体，那么物体数就最多。
 */
public class 贪心算法_转载问题 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] w = new int[n];
        for (int i = 0; i < n; i++) {
            w[i] = sc.nextInt();
        }
        int C = sc.nextInt();

        Arrays.sort(w);
        int ans = f(n, w, C);
        System.out.println(ans);
    }

    /**
     * @param n 物品数
     * @param w 物品对象的重量数组
     * @param c 限重值
     * @return
     */
    private static int f(int n, int[] w, int c) {
        int sum = 0;
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            sum += w[i];
            //优先选择重量最轻的物体, 则最终的物体数就会最多,且不超过限重
            if (sum <= c) {
                cnt++;
            } else {
                break;
            }
        }
        return cnt;
    }
}
